// 06-图2 Saving James Bond - Easy Version
#include <stdio.h>
#include <math.h>
#include <string.h>

#define MaxSize 100

typedef struct Point Point;
struct Point {
    int x, y;
};

// 使用全局变量
// 鳄鱼坐标点
Point points[MaxSize];
// 岛半径
double islandRadius = 15.0/2;
// 鳄鱼数，跳跃距离
int n, jumpDistance;

// 是否可以从v跳到w
int jump(Point* v, Point* w) {
    double d = sqrt((v->x - w->x)*(v->x - w->x) + (v->y - w->y)*(v->y - w->y));
    return jumpDistance >= d;
}

// 第一跳是否可以跳到目标点v
int firstJump(Point* v) {
    double d = sqrt(v->x*v->x + v->y*v->y);
    return (islandRadius + jumpDistance) >= d;
}

// 是否可以跳到岸边
int isSafe(Point* v) {
    return (50 - abs(v->x)) <= jumpDistance || (50 - abs(v->y)) <= jumpDistance;
}

int dfs(int v, int* visited) {
    visited[v] = 1;
    if (isSafe(&points[v])) {
        return 1;
    }
    for (int i=0; i<n; i++) {
        if (i == v) continue;
        if (!visited[i] && jump(&points[v], &points[i])) {
            if (dfs(i, visited)) {
                return 1;
            }
        }
    }
    return 0;
}

void save007() {
    int visited[MaxSize];
    memset(visited, 0, sizeof(visited));
    for (int i=0; i<n; i++) {
        if (!visited[i] && firstJump(&points[i])) {
            if (dfs(i, visited)) {
                printf("Yes\n");
                return;
            }
        }
    }
    printf("No\n");
}

int main() {
    scanf("%d %d", &n, &jumpDistance);
    for (int i=0; i<n; i++) {
        scanf("%d %d", &points[i].x, &points[i].y);
    }
    save007();
}
